/**
  ETFRoot project, Anyang Normal University && IMP-CAS
  \class ETFTaLTracker
  \brief trackers for tracking with 2 DCTaL DCs
  \author SUN Yazhou, asia.rabbit@163.com
  \since 2022-04-25
  \date 2021-04-25 last modified
  \attention
  changelog
  <table>
  <tr>  <th>Date         <th>Author      <th>Description                   </tr>
  <tr>  <td>2021-04-25   <td>Asia Sun    <td>file created                  </tr>
  </table>

  \copyright Copyright (c) 2021 Anyang Normal U. && IMP-CAS with LGPLv3 LICENSE
*/

#ifndef ETFTaLTracker_h
#define ETFTaLTracker_h

#include <vector>
#include <string>
#include "ETFTaTracker.h"

using std::string;
using std::vector;

class ETFTaLTracker : public ETFTaTracker{
public:
  ETFTaLTracker(const char *name = "") : ETFTaTracker(name){}
  /// dcs, t0: the constituent dcs and timing detectors of the tracker
  ETFTaLTracker(const char *name, const vector<string> &dcs, const char *t0);
  virtual ~ETFTaLTracker();

  ///< if accept the layer or not in Map()
  virtual bool GoodLayer(ETFVDC *dc, DCType type, int x12) const;

  ClassDef(ETFTaLTracker, 1);

protected:
  /// \retval false: if obtained drift time out of range
  virtual bool SetDriftDistance(ETFVTrack *trk);
};

#endif
